A simplified view of the boot process looks like this: 
1. The machine's BIOS or boot firmware loads and runs a boot loader. 
2. The boot loader finds the kernel image on disk, loads it into memory, and starts it. 
3. The kernel initializes the devices and its drivers. 
4. The kernel mounts the root filesystem. 
5. The kernel starts a program called init with a process ID of 1. This point is the user space start. 
6. init sets the rest of the system processes in motion. 
7. At some point, init starts a process allowing you to log in. 
========================================= 
To do their work, network clients connect to corresponding network servers. Unix network servers come in many forms. A server program can listen to a port on its 

 own or through a secondary server. In addition, servers have no common configuration database and a wide variety of features. Most servers have a configuration file to control their behavior (though with no common format), and most use the operating system's syslog service for message logging. 
========================================== 
If you've had your Linux machine for a while, you may notice that your home directory accumulates a bafflingly large array of startup files over time. These are sometimes called dot files because they nearly always start with a dot (.). This section primarily covers shell startup files, which are the ones you're most likely to modify or rewrite from scratch. 
============================================== 

 Unlike other parts of a Linux system, such as storage and networking, there isn't much of a hierarchy of layers involved in creating a desktop structure. Instead, each component performs a specific task, communicating with other components as necessary. Some components do share common building blocks (in particular, libraries for graphical toolkits), and these can be thought of as simple abstraction layers, but that's about as deep as it goes. 
============================================== 
It turns out that the C compiler does not actually do the work of looking for all of these include files. That task falls to the C preprocessor, a program that the compiler runs on your source code before parsing the actual program. The preprocessor rewrites source code into a form that the compiler understands; it's a tool for making source code easier to read (and for providing shortcuts). Preprocessor commands in the source code are called directives, and they start with the # character. 

Упрощенный процесс начальной загрузки выглядит следующим образом: 
1. Механическая базовая система ввода-вывода или процесс начальной загрузки оборудования загружает и запускает программу начальной загрузки.
2. Программа начальной загрузки находит изображение фрагмента программного кода на диске, загружает его на оперативную память и запускает его.
3. Фрагмент программного кода запускает устройства и его отладочные программы.
4. Фрагмент программного обеспечения подключает основную файловую систему.
5. Фрагмент программного обеспечения запускает программу, так называемую инициализацию, с помощью первого процессного идентификатора. Этот момент является начальным в использовании программы.
6. Инициализация запускает остальную часть системных процессов.
7. В определенный момент инициализация запускает процесс, позволяющий войти в систему.

Для того чтобы начать работу с программой пользователи сети подключаются к соответствующим серверам. Сервера операционной системы UNIX имеют много форм. Серверная программа может ждать сигнала как от собственного порта, так и от второстепенного сервера. К тому же, сервера не имеют ничего общего с настройкой базы данных и имеет много различных особенностей. Большинство серверов имеют файл настройки, что позволяет контролировать их деятельность (несмотря на то, что не имеет общего формата) и большинство пользователей используют системный журнал для ведения файла отчета. 

Если Вы пользовались некоторое время устройством Linux, Вы заметили, что ваш домашний каталог накапливает затруднительно большой комплекс файлов запуска. Иногда их называют Dot файлами, потому что они почти всегда начинаются с точки. Этот отдел первоначально покрывает оболочечный файлы запуска, те самые, которых большинство любит изменять или переписывать c временного файла. 

В отличие от других составляющих системы Linux, таких как хранение и сетевая конфигурация, нет такой иерархии пластов, вовлеченных в создание десктоп-структуры. Вместо этого, каждый компонент выполняет специфическое задание, при необходимости сообщаясь с другими компонентами. Некоторые компоненты делят общие структурные элементы (в частности, библиотеки для комплекса графических инструментов) и это может рассматриваться просто как абстрактные пласты, но, на самом деле, все намного сложнее. 

 Оказывается, компилятор программы C, в действительности не выполняет функцию поиска всех этих файлов. Эта задача выполняется препроцессором, программа, компилятор которой перемещается на исходную программу, прежде чем проанализировать действующую программу. Препроцессор переписывает исходный код в ту форму, которую может понять компилятор; это инструмент для написания исходного кода, который легче читать (и для обеспечения ярлыков). Препроцессор, который управляет исходным кодом, называют директивами, и они запускаются с помощью символа #.